package hcn.protocol.brandnew.dengji.chuyuan;

import com.fasterxml.jackson.annotation.JsonFormat;
import ctd.util.xml.jaxb.DateTimeAdapter;
import hcn.protocol.brandnew.BaseRequest;
import lombok.Data;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.Date;


/**
 * 出院预结算信息查询 - ODS_02110004
 *
 * @author enjoyLife
 */
@Data
@XmlRootElement(name = "MsgBody")
@XmlAccessorType(XmlAccessType.FIELD)
public class PaySettlementRequest extends BaseRequest {

    /**
     * 医疗机构组织机构代码
     */
    @XmlElement(name = "VisitOrganization")
    private String visitOrganization;
    /**
     * 住院号
     */
    @XmlElement(name = "VisitId")
    private String visitId;
    /**
     * 医疗付费方式代码
     */
    @XmlElement(name = "MedicalCostPayTypeCode")
    private String medicalCostPayTypeCode;
    /**
     * 支付标志
     */
    @XmlElement(name = "PayState")
    private Byte payState;
    /**
     * 交易流水号
     */
    @XmlElement(name = "AgtOrderNumber")
    private String agtOrderNumber;
    /**
     * 自负金额
     */
    @XmlElement(name = "SelfCost")
    private String selfCost;
    /**
     * 住院总费用
     */
    @XmlElement(name = "HospizationCost")
    private String hospizationCost;
    /**
     * 商户订单号
     */
    @XmlElement(name = "OutOrderNumber")
    private String outOrderNumber;
    /**
     * 聚合支付交易流水号
     */
    @XmlElement(name = "ChannelOrderNumber")
    private String channelOrderNumber;
    /**
     * 通知信息
     */
    @XmlElement(name = "SettleNotify")
    private String settleNotify;
    /**
     * 预结算标识
     */
    @XmlElement(name = "PaymentBudgetNumber")
    private String paymentBudgetNumber;
    /**
     * 结算日期时间
     */
    @XmlElement(name = "SettleDateTime")
    @XmlJavaTypeAdapter(DateTimeAdapter.class)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date settleDateTime;
    /**
     * 付款人
     */
    @XmlElement(name = "Payer")
    private String payer;

}
